package com.suning.sawp.po.precharge;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.index.Indexed;
import org.springframework.data.mongodb.core.mapping.Document;

/**
 * 
 * 现金充值记录<br> 
 * 〈功能详细描述〉
 *
 * @author Wuxiao
 * @see [相关类/方法]（可选）
 * @since [产品/模块版本] （可选）
 */
@Document(collection = "PrechargeOrder")
public class PreChargeOrder implements Serializable {

    /**
     */
    private static final long serialVersionUID = 1L;
    /**
     * 文档id
     */
    @Id
    private String id;
    /**
     * 店员工号
     */
    @Indexed
    private String oaAccountNo;
    /**
     * 客户端唯一流水号
     */
    @Indexed(unique=true)
    private String clientSerialNo;
    /**
     * 用户会员编码
     */
    private String custNo;
    /**
     * 用户手机号
     */
    private String telNo;
    /**
     * 订单号
     */
    private String orderId;
    /**
     * 门店编码
     */
    private String storeCode;
    /**
     * 规则编码
     */
    private String ruleCode;
    /**
     * 0 未发券   1 已发券   发券失败 999
     */
    private Integer status;
    /**
     * 流水号
     */
    private String serialNo;
    /**
     * 充值时间
     */
    @Indexed
    private Date payTime;
    /**
     * 充值金额  分
     */
    private BigDecimal chargeAmount;
    /**
     * 返券金额  分
     */
    private BigDecimal couponAmount;
    /**
     * 校验码
     */
    private String verifyCode;
    /**
     * 券有效期开始
     */
    private String couponStartTime;
    /**
     * 券有效期结束
     */
    private String couponEndTime;
    /**
     * 充值失败信息
     */
    private String chargeErrorMsg;
    /**
     * 剩余短信发送次数
     */
    private String remainSmsTimes;
    /**
     * 门店名称
     */
    private String storeName;
    /**
     * 大区编码
     */
    @Indexed
    private String regionCode;
    /**
     * 大区名称
     */
    private String regionName;
    
    public String getId() {
        return id;
    }
    public void setId(String id) {
        this.id = id;
    }
    public String getOaAccountNo() {
        return oaAccountNo;
    }
    public void setOaAccountNo(String oaAccountNo) {
        this.oaAccountNo = oaAccountNo;
    }
    public String getCustNo() {
        return custNo;
    }
    public void setCustNo(String custNo) {
        this.custNo = custNo;
    }
    public String getTelNo() {
        return telNo;
    }
    public void setTelNo(String telNo) {
        this.telNo = telNo;
    }
    public String getOrderId() {
        return orderId;
    }
    public void setOrderId(String orderId) {
        this.orderId = orderId;
    }
    public String getSerialNo() {
        return serialNo;
    }
    public void setSerialNo(String serialNo) {
        this.serialNo = serialNo;
    }
    public Date getPayTime() {
        return payTime;
    }
    public void setPayTime(Date payTime) {
        this.payTime = payTime;
    }
    public BigDecimal getChargeAmount() {
        return chargeAmount;
    }
    public void setChargeAmount(BigDecimal chargeAmount) {
        this.chargeAmount = chargeAmount;
    }
    public BigDecimal getCouponAmount() {
        return couponAmount;
    }
    public void setCouponAmount(BigDecimal couponAmount) {
        this.couponAmount = couponAmount;
    }
    public String getRuleCode() {
        return ruleCode;
    }
    public void setRuleCode(String ruleCode) {
        this.ruleCode = ruleCode;
    }
    public String getVerifyCode() {
        return verifyCode;
    }
    public void setVerifyCode(String verifyCode) {
        this.verifyCode = verifyCode;
    }
    public String getCouponStartTime() {
        return couponStartTime;
    }
    public void setCouponStartTime(String couponStartTime) {
        this.couponStartTime = couponStartTime;
    }
    public String getCouponEndTime() {
        return couponEndTime;
    }
    public void setCouponEndTime(String couponEndTime) {
        this.couponEndTime = couponEndTime;
    }
    public String getClientSerialNo() {
        return clientSerialNo;
    }
    public void setClientSerialNo(String clientSerialNo) {
        this.clientSerialNo = clientSerialNo;
    }
    public String getChargeErrorMsg() {
        return chargeErrorMsg;
    }
    public void setChargeErrorMsg(String chargeErrorMsg) {
        this.chargeErrorMsg = chargeErrorMsg;
    }
    public Integer getStatus() {
        return status;
    }
    public void setStatus(Integer status) {
        this.status = status;
    }
    public String getRemainSmsTimes() {
        return remainSmsTimes;
    }
    public void setRemainSmsTimes(String remainSmsTimes) {
        this.remainSmsTimes = remainSmsTimes;
    }
    public String getStoreCode() {
        return storeCode;
    }
    public void setStoreCode(String storeCode) {
        this.storeCode = storeCode;
    }
    public String getStoreName() {
        return storeName;
    }
    public void setStoreName(String storeName) {
        this.storeName = storeName;
    }
    public String getRegionCode() {
        return regionCode;
    }
    public void setRegionCode(String regionCode) {
        this.regionCode = regionCode;
    }
    public String getRegionName() {
        return regionName;
    }
    public void setRegionName(String regionName) {
        this.regionName = regionName;
    }

    public interface Attributes {
        String CLIENT_SERIAL_NO = "clientSerialNo";
        String STATUS = "status";
        String CHARGE_ERROR_MSG = "chargeErrorMsg";
        String ORDER_ID = "orderId";
        String COUPON_AMOUNT = "couponAmount";
        String COUPON_START_TIME = "couponStartTime";
        String COUPON_END_TIME = "couponEndTime";
        String VERIFY_CODE = "verifyCode";
        String SERIAL_NO = "serialNo";
        String PAY_TIME = "payTime";
        String STORE_CODE = "storeCode";
        String REGION_CODE = "regionCode";
        String CHARGE_AMOUNT = "chargeAmount";
    }
}
